# 编码规范 - 板型差异通过 `boards//mpconfigboard.h` 与 `mpconfigboard.mk` 声明,主 Makefile 通过 `include $(BOARD_DIR)/mpconfigboard.mk` 组合 SDKCONFIG,避免修改核心构建逻辑。 - 新增 C 层内置模块需在 `mpconfigport.h` 的 `MICROPY_PORT_BUILTIN_MODULES` 宏中注册模块名到 `mp_obj_module_t` 映射,并在 `BUILTIN_C` 中加入源文件。 - 驱动源码按功能分目录组织于 `drivers//`,并在 `Makefile` 中以 `DRIVERS_SRC_C += $(addprefix drivers/, ...)` 方式显式列出参与编译的文件。 - Python 扩展库统一放置在 `file_system/` 下随 VFS 镜像打包,开机脚本 `file_system/main.py` 通过 `from mpython import oled` 访问板载资源,保持用户代码与底层实现解耦。 - 音频子系统采用 Helix 与 libmad 双后端抽象,通过 `decoder/helix_mp3_decoder.c` 与 `decoder/mad_mp3_decoder.c` 统一暴露给上层 `audio_player.c`/`url_codec.c`。 - ESP-IDF 组件对象指针(如 mp3 解码结构体)通过 `MPYTHON_PORT_ROOT_POINTER` 宏声明为全局根指针,确保 GC 能正确追踪这些跨 C/Python 边界的内存。